#pragma once
#include "EpilExpressionCodeBase.h"
#include "EpilOperator.h"


class EpilUnaryExpressionCode : public EpilExpressionCodeBase
{
	EPIL_CODE_DECL( UnaryExpression );

public:
	EpilUnaryExpressionCode( const EpilLexLocation & location );
	virtual ~EpilUnaryExpressionCode();

	EpilUnaryOperator					GetOperator() const								{ return m_operator; }
	void								SetOperator( EpilUnaryOperator op )				{ m_operator = op; }
	EpilExpressionCodeBase *			GetExpression() const							{ return m_expression; }
	void								SetExpression( EpilExpressionCodeBase * expr )	{ m_expression = expr; }
	
	virtual tstring						ToEpilCode( int indent = 0 ) const;

private:
	EpilUnaryOperator					m_operator;
	EpilExpressionCodeBase *			m_expression;
};